import { VideoService } from '@/lib/video/video-service';
import { NextRequest, NextResponse } from 'next/server';

/**
 * GET /api/videos/search - 搜索视频API
 * 支持以下查询参数：
 * - keyword: 搜索关键词
 * - page: 页码
 */
export async function GET(request: NextRequest) {
  try {
    // 解析URL查询参数
    const { searchParams } = new URL(request.url);
    console.log('[API] 收到搜索请求参数:', Object.fromEntries(searchParams.entries()));
    
    // 获取必要参数
    const keyword = searchParams.get('keyword') || '';
    const page = parseInt(searchParams.get('page') || '1');
    
    console.log('[API] 解析搜索参数:', { keyword, page });
    
    // 如果没有关键词，返回错误
    if (!keyword) {
      console.error('[API] 缺少搜索关键词参数');
      return NextResponse.json({ error: '缺少搜索关键词参数', videos: [], total: 0 }, { status: 400 });
    }
    
    // 每页显示的数量固定为24个
    const pageSize = 24;
    
    // 调用视频服务获取数据
    const { videos, total } = await VideoService.searchVideos(keyword, page, pageSize);
    
    // 计算总页数
    const totalPages = Math.ceil(total / pageSize);
    const hasMore = page < totalPages;
    
    console.log('[API] 返回搜索数据:', { 
      keyword,
      videoCount: videos.length, 
      total, 
      currentPage: page, 
      totalPages,
      hasMore
    });
    
    // 返回结果
    return NextResponse.json({ 
      videos, 
      total, 
      currentPage: page, 
      totalPages,
      hasMore
    });
  } catch (error) {
    console.error('[API] 搜索服务器错误:', error);
    return NextResponse.json({ error: '服务器内部错误', details: (error as Error).message, videos: [], total: 0 }, { status: 500 });
  }
} 